A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The present application relates generally to use of a computer with the Internet and, more particularly, methods for managing a user""s own preferred Internet sites in a computer system having an Internet or other on-line browser.
With the ever-increasing popularity of the Internet, more and more personal computers (PC""s) provide Internet access to users, typically through an Internet xe2x80x9cbrowserxe2x80x9d such as Microsoft Internet Explorer or Netscape Navigator. A browser is a form of an xe2x80x9cInternet application.xe2x80x9d In general terms, an Internet application is an application which includes the ability to access a URL (Universal Request Locator) or xe2x80x9cWebxe2x80x9d site. The Internet itself is not so much defined by various connections between computers as it is by the content which it holds. A common format for representing information on the Internet is HTML or xe2x80x9cHyper Text Markup Language.xe2x80x9d A browser, acting as an Internet application, accesses HTML data through the Internet. Other applications can serve as Internet applications. Microsoft Word, a popular desktop word processing program, can serve as an Internet application because it too can use a URL to access information or content from the Internet.
For the individual user, use of the Internet can range from casual to frequent use. Typically, a user has some number of xe2x80x9cfavoritexe2x80x9d spots or locations on the Internet that he or she xe2x80x9cvisitsxe2x80x9d once or twice a week, or all the time. As one uses the Internet more frequently, there tends to be more and more favorite locationsxe2x80x94that is, locations where one desires to store a reference to, so that one can return to that location with ease.
Given this on-line environment, one characterized by an increasing number of PC""s connected to the Internet, a number of problems arise. One common problem encountered, for instance, is the task of personalizing and organizing a xe2x80x9csubsetxe2x80x9d of the Internet continuumxe2x80x94that is, xe2x80x9cmarkingxe2x80x9d the Internet (i.e., creating bookmarks). A URL is, in and of itself, a xe2x80x9cmark.xe2x80x9d Its usefulness as a mark, however, cannot be realized unless the URL is collected and organized together with other marks which are of interest to the user.
Another problem which faces the environment is that although the URL""s are xe2x80x9cuniversal,xe2x80x9d the marks which store references to them are usually not universal. A user typically sets up a number of bookmarks in his or her browser (e.g., Netscape Navigator), for instance, but those marks are no longer available to the user once the user switches to another browser or another Internet application. This problem arises because the marks reside within the context of the browser, not within the context of the Internet.
Expectedly, the task of sharing one""s marks with other users is problematic. For instance, a user might have collected some marks on his or her machine at work and desired to swap those marks to a home PC. The user can no more easily share marks among the user""s own machines than he or she can with other users. If the user has created a useful collection of marks, say for baseball Web site locations, the user cannot easily publish or otherwise transfer that collection to other users. Today, if one wants to reproduce bookmarks, he or she must manually reenter each one. Although this is perhaps acceptable for exchanging one URL mark, the approach is unacceptable for exchanging a list of marks and the organization of such a list. All told, although a URL itself is universal, the storage of the URLxe2x80x94including how it is organized and cataloged (e.g., Microsoft Internet Explorer xe2x80x9cfavoritesxe2x80x9d vs. Netscape Navigator xe2x80x9cbookmarksxe2x80x9d)xe2x80x94is unique to the Internet application or to the underlying operating system. As a result, the marks are not necessarily compatible with one another, thus making them difficult or impossible to exchange.
The problem is even more general, however. There are other on-line xe2x80x9clocationsxe2x80x9d which the user might desire to store as a mark. Besides Internet URL""s, for example, the user might desire to store a xe2x80x9cmarkxe2x80x9d to a location on a particular proprietary service, such as CompuServe or America On-line (AOL). Although each of these locations is not a URL location, the user nevertheless desires to treat such a location in the same manner as he or she would treat an Internet mark. Again, one runs into application-specific problems with marking such locations. In the case of Netscape Navigator, for instance, one can only mark URL""s. In the case of Microsoft Internet Explorer, on the other hand, one might be able to create a xe2x80x9cshortcutxe2x80x9d to non-URL locations. Such a xe2x80x9cshortcutxe2x80x9d would, however, be a Microsoft proprietary solution, thus limiting the ability of the user to share such a mark with other users. In the specific instance of Microsoft Internet Explorer, each xe2x80x9cshortcutxe2x80x9d exists as a separate file on one""s system, the interpretation of which is proprietary to Microsoft""s Internet Explorer.
As a common example of the difficulty of exchanging marks, consider for instance a Netscape Navigator user who desires to exchange marks with another user who happens to use Microsoft Internet Explorer. As each respective set of marks is stored in its own proprietary format, the users must resort to manually entering each mark, a tedious task at best. Further complicating this difficulty, each user is unable to access his or her own marks without the respective proprietary browser which created the marks in the first place. Once one does use the appropriate browser to access a mark, the mark can only be used to drive the operation of that browser.
Another problem which presents itself in such an environment is how one manages large lists of marks. As use of the Internet by a particular user becomes more frequent, that user tends to build up a large collection of interesting content on the Internet. Once a particular list becomes large, finding an item of interest on that list becomes a task in itself. One approach to simplifying management is to arrange a list hierarchically, such as in an outline format using xe2x80x9cfolders.xe2x80x9d Since the approach still relies on a textual representation of a mark, however, there is a limit to its usefulness. Unlike a file-based Explorer where different file types can be represented by different icons, hierarchical representation of marks have been implemented as large lists of texts where differences between individual entries cannot be discerned at a glance. Although Microsoft Internet Explorer allows one to attach an icon to each mark item, the end result is a hierarchical list of marks with the very same icon repeated many times (thereby, providing little or no benefit). Here, the unique visual identifying feature of each item is its name, which is often long and difficult to read, if not completely cryptic. Given many bookmarks, therefore, the icons are of no value as they are all the same. Hierarchically-arranged lists help; nevertheless, the user has difficulty visually associating the correct item because the user must process numerous lines of text (which largely all look the same).
Another problem facing such an environment is that there exists marks whose corresponding sites are of interest to the user only periodically. A site which lists announcements or posts news items, for example, is of interest to the user at the point when content has actually changed. What is desired is a mechanism where one""s system can efficiently determine when content of interest has changed. One approach is to have a service automatically send the user the content or notification of change in the content. Such an approach requires back-end support, together with appropriate authorizations being secured beforehand. What one really wants is to have his or her individual client machine be able to determine readily when content at a location of interest has changed.
HTTP (Hyper Text Transport Protocol) supports the ability of an HTTP server to indicate when its content was last updated. This approach relies on the content provider for correctly configuring the HTTP server for providing this information. What one finds in practice, however, is that HTTP servers are often configured to simply indicate that the content is always updated (always new). Here, if a browser client inquires whether the content is new, the HTTP server always replies that the content is new, even when the content really has not changed. Although the capability exists to indicate whether content is new, the current implementation does not provide very accurate information in this regard.
Although the user might desire to know when content of interest has changed, one often has interest in only particular portions of that content. For instance, a Web site of interest to the user might include revolving advertisements and, thus, has content which is constantly changing. At the same time, however, the user is only interested in the non-advertisement material. In this scenario, an HTTP server would indicate that the content is always new. The content which is really of interest, however, is not new.
All approaches to date at addressing these problems have been application centric. One is forced to use marks within the context of one""s particular application, not within the context of the Internet. Except for the ability of the user to assign a few icons, there is no visual cue for marks provided to the user. Instead, the user must rely on textual identification. Further, approaches to date have treated marks as pointers to URL""s, in effect abandoning the ability of the user to readily access on-line locations which are not Web sites. Instead of this URL-specific version of a pointer, what the user really wants is a generic pointerxe2x80x94one which allows the user to easily navigate to a particular location on-line.
The present invention provides a Quick marks utility which lets the user easily organize programs, Web sites, and other items in tabs, and start them with a single click. Its particular interface comprises a manageable lists of marks which is organized by tabs, folders, and visual icons. Buttons on the Quick marks utility let the user start programs or jump to a Web site. When the user clicks an Internet Quick marks button, the system launches the user""s Web browser and connects the user to that Web site. After the browser is launched, the user can continue to click different Quick marks buttons to connect quickly to desired sites. In typical operation, the Quick marks utility is set up by the user so that his or her most frequently-used quick marks are buttons, where the user can easily access them. The user can employ tabs to group these buttons by type, program, task, or project. In a preferred embodiment, the Quick marks utility is provided as a xe2x80x9cplug inxe2x80x9d for a Control Center user interface. The actual Quick marks plug-in includes user interface and memory management components, which may be implemented in a conventional manner.
Of particular interest to the present invention is that component or subsystem which comprises an abstraction layer which operates in conjunction with various drivers. The abstraction layer provides an interface allowing applications to communicate with the system and request Quick mark services. The workhorse routines, on the other hand, are encapsulated within the various drivers. The particulars of a Quick mark item are handled by a Quick mark (QMX) driver, which provides an extensionxe2x80x94driver-specific API (application programming interface)xe2x80x94for handling the item. With this architecture, the particular details of handling a mark (i.e., whether it is a URL, whether it is a pointer to a file, whether it is a document, or the like) are abstracted to a level which removes or decouples it from the management of the mark.
The plug-in""s memory manager provides memory management largely by managing a linked list of objects. This module allows a mark to be abstracted into an item in the list of objects. The manager provides a list of containers and items. Containers can contain other containers (i.e., nested containers) and/or contain items. The items themselves may comprise xe2x80x9cfoldersxe2x80x9d and xe2x80x9careas.xe2x80x9d The two differ in that an area has a specific association with a driver. Imported Netscape bookmarks or imported Microsoft Internet Explorer Favorites each represent an areaxe2x80x94that is, an item associated with a specific driver. In this manner, different areas can be established, each area having its own particular I/O handling provided by a driver specific for that area. Further, however, each area can contain folders, and each folder, in turn, can contain one or more marks.
The mark information itself is stored in a Quick marks database; each mark is stored in the storage in a machine-specific format. At the same time, however, a xe2x80x9cCoolxe2x80x9d I/O layer is provided to manage storage of mark information in a xe2x80x9cCoolxe2x80x9d marks database, in machine-independent format. Consider, for instance, storage of two marks: a URL and a file. Because of its universal nature, a URL is easily translated, regardless of which machine employs it; it simply points to a place on the Internet. What a xe2x80x9cfilexe2x80x9d points to, on the other hand, changes from one computer to another. The file itself does not change. However, interpretation of the file changes from one computer to another. A cool mark for a file, as stored in the xe2x80x9cCoolxe2x80x9d marks database, is unresolved. For the Quick mark database or storage, on the other hand, it is resolved (since it resides on a specific machine). The system provides a translation mechanism whereby a mark residing in the xe2x80x9cCoolxe2x80x9d marks database can be translated into a corresponding mark in the Quick marks storage. For translation of a xe2x80x9cfilexe2x80x9d item, for instance, the system would resolve where the file is located on the specific machine. If a location is found, the system augments or supplements the generic description with a specific description.